1. Field of the Invention
This invention relates to a computer peripheral and, more specifically, to a “smart”, user-programmable peripheral that is able to provide a wide range of standard user inputs, such as mouse, keyboard, game pad and joystick, including sequences, to a computer. The following terminology is used throughout this patent application:    Digital machine: an electronic device operated by a digital controller running a program, such as a computer, electronic appliance, or the like.    Computer: Throughout this document, the unqualified use of the term ‘computer’ is equated with a personal computer, a game console, an embedded computer system or any other similar reprogrammable computer.    Personal Computer: The term “personal computer” or PC, refers to a computer such as an IBM compatible, an Apple system, a Linux system or similar computer.    Game Console: The term “game console” refers to a computer generally dedicated to game playing, such as an Xbox, PlayStation, GameCube or similar system.    Peripheral Device: The term “peripheral device”, or more simply, “peripheral” refers to an input and/or output accessory added to a computer to enable a user to provide input to, or receive output from, a computer. Examples include keyboard, mouse, game pad, joystick, steering wheel and similar devices.    Peripheral control: an input capturing component located on a peripheral such as a button or pad that translates the user's physical input to an electronic computer-usable signal. Typical controls are buttons which capture timed logical input, keyboard keys, and “analog” controls which capture values in a continuum, such as X/Y variables, usually for use in relating a data capture task.    Peripheral control input: The physical action taken by the user to actuate (cause a signal to be generated) a peripheral control. Examples include pressing a mouse button, moving a joystick, or tapping a keyboard key.    Peripheral output action: The command effect the user's control input achieves as interpreted by the current application software. Examples include a left mouse click signal, movement signal of the cursor, a scroll up signal, or the keystroke “a”.    USB: The term “USB” refers to the USB peripheral expansion standard as defined by the USB Implementers Forum.    HID: The term “HID” refers to a Human Interface Device that is one of the classes of devices defined by the USB specification specifically to support peripherals.
1. Description of Related Art
Interactive user input to a personal computer is typically implemented using a mouse and a keyboard. Modern PC applications programs, such as typical Digital Image Manipulation And Rendering (DIMAR) software, and most gaming software, requires coordinated input from both the mouse and the keyboard in complex, time-dependent sequences. This is not user friendly and limits the user's ability to interact and control this software. Mouse interaction is based on instinctive hand-eye coordination, an extension of real-world sensory experience, and is (or may quickly become) intuitive. In contrast, keyboard use is dependent on identifying and pressing the correct keys or sequence of keys during software operation or during the fervor of a game. Additionally, for the game player, this may involve having to look away from the game screen, and striking the keyboard keys while simultaneously moving the mouse and pressing the mouse buttons. These actions are not intuitive. Therefore PC users may be prevented from performing at their highest potential level, since they are encumbered by the operation of current PC peripherals.
A modern PC uses the Universal Serial Bus to connect the mouse and keyboard, and other peripheral devices, to the computer. The USB connection is self-identifying and is protocol based and this makes the peripheral device connection hardware independent. This hardware independence allows any device that uses the appropriate protocol to be recognized by the PC as a standard mouse and/or keyboard, or other USB-defined peripheral device.
Interactive user input to a gaming console is typically implemented using a game pad. The game pad has a variety of buttons and XY position controls. Each gaming console uses a different connection methodology and therefore these game pads are not interchangeable between systems.
Recently, peripherals have been introduced into the PC marketplace specifically for playing games—these devices are similar to their counterparts in the gaming console marketplace and include game pads, steering wheels, joysticks, dancing pads and the like. Modern PC gaming peripherals use a USB connection method.
FIG. 1 shows a typical prior art USB-based mouse and a typical prior art USB-based keyboard. The embedded, fixed function microcontrollers detect button presses and XY movement of the mouse or key-presses of the keyboard and forward this low-level information to the PC via a standard report structure as defined by the USB Specification (available from www.usb.org). The PC handles interpretation of this report and determines events such as button clicks/double-clicks for a mouse and repeated keys for a keyboard. It also interprets the XY movement report and the scroll wheel report to implement the control functions that are defined by these reports. That is, the movement detection causes corresponding movement of the onscreen cursor, and scroll wheel movement causes line up/line down movement of the display. The intelligence for the operation of a prior art mouse or keyboard is part of the computer operating system and therefore these prior art peripheral devices could be categorized as “dumb” peripherals.
FIG. 2 shows a typical prior art game pad connected to a gaming console. The embedded, fixed function microcontroller detects button presses and XY position information and forwards this low-level information to the gaming console via a gaming console specific method. The intelligence for the operation of a prior art game pad is part of the gaming console operating system and therefore these prior art peripheral devices could be categorized as “dumb” peripherals.
The new gaming-specific peripherals introduced for the PC follow the same prior art design methodology, i.e. they are “dumb” peripherals.
Looking at the industry in general, there are more and more applications handled by computers that require special input devices. Consequently there are more and more peripheral devices. These peripherals are defined in classes. A class of peripherals shares a similar set of physical controls, a definitional set of control outputs, and a class or set of computer applications are thus supported which accept these as default inputs. Most computer applications accept input from a mouse and keyboard, but it is significant to note that applications are “dumb” and recognize inputs only from a limited number of devices specifically coded for those applications, and this necessarily limits input flexibility.
The ergonomic design of the peripheral itself, which has the greatest influence on productivity and is of great importance to the user, is a factor not recognized by the peripheral class definitions useful to applications. Since most applications accept a common, similar set of inputs, and various peripheral class devices generate these or similar outputs, users are confronted with the problem of choosing a peripheral device that fits them ergonomically but their application may not recognize it. Studies and anecdotal evidence suggests that peripherals are somewhat like shoes and must fit the user well to be most useful. Yet at this time the class nature of input control devices and their either/or support via “dumb” applications as well as platform and proprietary incompatibilities makes ergonomic use of preferred peripherals impossible without a gaggle of special after-market per-application adaptors.
A protocol to recognize and even translate peripheral actions across classes exists in the USB device descriptor tables, but there is no apparatus known in the prior art to take advantage of this capability. In summary prior art computers are controlled by the user via a variety of “dumb” peripherals, as shown in FIG. 3, and there exists an opportunity to create a new range of “smart” peripherals that are better ergonomically for the user and more efficient as data input devices.